import java.util.Comparator;
import java.util.NavigableMap;
import java.util.TreeMap;


public class Mapas {

	public static void main(String[] args) {
		

		NavigableMap<MinhaClasse, String> m = new TreeMap<MinhaClasse, String>();
		
		m.put(new MinhaClasse(), "Leandro");
		m.put(new MinhaClasse(), "Igor");

		m.put(new MinhaClasse(), "Rafael");
		m.put(new MinhaClasse(1), "Marcia");
		m.put(new MinhaClasse(1), "Herminio");
		
		
		
		System.out.println(m.keySet());
		System.out.println(m.values());
		System.out.println();
	}

}

class MinhaClasse implements Comparable<MinhaClasse>{
	private Integer valor;
	private static Integer contador = 0;
	public MinhaClasse() {
		super();
		this.valor = ++contador;
	}

	public MinhaClasse(int param) {
		super();
		if (param > contador)
			this.valor = contador = param;
		else
			this.valor = param;
	}
	
	
	@Override
	public String toString() {
		return "MinhaClasse [valor=" + valor + "]";
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + valor;
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		MinhaClasse other = (MinhaClasse) obj;
		if (valor != other.valor)
			return false;
		return true;
	}

	@Override
	public int compareTo(MinhaClasse o) {
		// TODO Auto-generated method stub
		return this.valor - o.valor;
	}
	
	
	
}
